namespace Terra.Core.Infrastructure.Logging;

/// <summary>
/// 日志服务接口
/// </summary>
public interface ILogger
{
    void Debug(string message, params object[] args);
    void Info(string message, params object[] args);
    void Warning(string message, params object[] args);
    void Error(string message, Exception exception = null, params object[] args);
    void Fatal(string message, Exception exception = null, params object[] args);

    Task DebugAsync(string message, params object[] args);
    Task InfoAsync(string message, params object[] args);
    Task WarningAsync(string message, params object[] args);
    Task ErrorAsync(string message, Exception exception = null, params object[] args);
    Task FatalAsync(string message, Exception exception = null, params object[] args);
}